package es.deusto.ingenieria.sd.tralala.client;


import java.rmi.RemoteException;
import java.util.List;

import es.deusto.ingenieria.sd.tralala.server.ITralalaManager;
import es.deusto.ingenieria.sd.tralala.server.data.archivoDTO;
import es.deusto.ingenieria.sd.tralala.server.data.cancionDTO;
import es.deusto.ingenieria.sd.tralala.server.data.usuarioDTO;



public class TralalaController {
	public ServiceLocator SLocator;
	
	public ITralalaManager itm;

	public TralalaController() {
		SLocator = new ServiceLocator();

	}

	/*public static void main(String[] args) {

		try {
			String name = "//" + args[0] + ":" + args[1] + "/" + args[2];
			TralalaController trController = new TralalaController();
			trController.setService(name);
			ITralalaManager trm1 = trController.getService();
			/*usuarioDTO DTO =trm1.login("Ramon","0000"); //mal he puesto object porque lanza la excepcion:  com.sun.proxy.$Proxy1 cannot be cast to es.deusto.ingenieria.sd.tralala.server.data.usuarioDTO
			if(DTO.equals(null)){
				System.out.println("DTO nulo");
			}

		} catch (Exception e) {
			System.err.println("- Exception running the client: "
					+ e.getMessage());
			e.printStackTrace();
		}
	}*/
	
	public usuarioDTO login (String nombre, String pass){
		usuarioDTO u = null;
		System.out.println("Metodo Login");
		try {
			System.out.println("metodo login");
			u = itm.login(nombre, pass);
			
		} catch (RemoteException e) {
			System.out.println("No se conecta al server");
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return u;
	}
	
	public archivoDTO reproducir (String nombreC, String nombreU){
		archivoDTO a = null;
		try {
			a = itm.reproducir(nombreC, nombreU);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return a;
	}
	public List<cancionDTO> getMCanciones(){
		List<cancionDTO> a = null;
		try {
			a = itm.getMCanciones();
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return a;
	}

	public void getService() {

		ITralalaManager trm1 = SLocator.getService();
		this.itm = trm1;

	}

	public void setService(String name) {

		SLocator.setService(name);

	}

}